package com.rgs.module.file.service;

import com.rgs.module.file.entity.FileInfoDO;
import com.rgs.module.file.filter.FileInfoFilterDTO;

import java.util.List;
import java.util.Optional;

/**
 * @author Ren Gaoshuai
 * @ClassName FileInfoService
 * @create 2022-01-26 8:50
 **/
public interface FileInfoService {
    /**
     * 根据条件获取一条数据
     *
     * @param fileInfoFilter 条件过滤器
     * @return 实例对象
     */
    Optional<FileInfoDO> selectByFilter(FileInfoFilterDTO fileInfoFilter);

    /**
     * 通过条件查询数据
     *
     * @param fileInfoFilter 条件过滤器
     * @return 实例数组
     */
    List<FileInfoDO> listByFilter(FileInfoFilterDTO fileInfoFilter);


    /**
     * 根据条件更新
     * 忽略空字段
     *
     * @param fileInfoDO 实例
     * @param fileInfoFilter 条件过滤器
     */
    void updateSelectiveByFilter(FileInfoDO fileInfoDO, FileInfoFilterDTO fileInfoFilter);

    /**
     * 根据主键获取对象
     *
     * @param id 主键
     * @return 实例
     */
    FileInfoDO selectById(String id);

    /**
     * 新增实例
     *
     * @param fileInfo 实例对象
     * @return 实例对象
     */
    FileInfoDO insert(FileInfoDO fileInfo);
}
